001    /***********************************************************************************************
002     *              Tekijä:                 Jukka Salminen
003     *              Opiskelijanumero:       i79947
004     *              Email:                  jukka.salminen@uwasa.fi
005     *              Tekoaika:               23.9.2002
006     *              Kurssi/vuosi:           Ohjelmoinnin jatkokurssi/kevät 2002
007     *              Työn tunnus:            Harjoitustyö: Taulukkoeditori web-sivulle
008     ***********************************************************************************************
009     * TableAction-luokka
010     *====================
011     * JSAction-luokan aliluokka, joka käsittelee taulukkoon kohdistuvat tapahtumat.
012     * Käsiteltävä taulukko on tallennettu yliluokassa m_oTarget-objektiin.
013     * Tapahtumia aiheuttavat lomakkeella olevat JSButton-objektit.
014     * Näiden objektien actionCommand-ominaisuus ohjaa tämän luokan toimintaa.
015     *
016     * Metodit
017     *--------
018     * actionPerformed      Suorittaa tapahtuman käsittelyn.
019     *
020     * Jäsenmuuttujat
021     *---------------
022     * m_oTarget            Taulukko-objekti, jota tämän luokan metodit muokkaavat
023     *
024     * Paikalliset muuttujat
025     *----------------------
026     * Ei ole
027     */
028    
029    package classes;
030    import java.awt.*;
031    import javax.swing.*;
032    import javax.swing.table.*;
033    import tables.*;
034    
035    /**
036     *
037     * @author  Jukka
038     */
039    public class TableAction extends JSAction
040    {
041            public TableAction()
042            {
043                    super();
044            }
045            
046            public TableAction(javax.swing.JComponent oTarget)
047            {
048                    setTarget(oTarget);
049            }
050            /***********************************************************************************************
051             * Metodi actionPerformed
052             * =====================
053             * Lomakkeen JSButton-napin painalluksen jälkeen tätä metodia kutsutaan.
054             * Parametrina tulee ActionEvent-objekti, josta selviää painettu nappi.
055             * Aikaisemmin asetetusta jäsenmuuttujasta m_oTarget saadaan viittaus
056             * käsiteteltävään taulukkoon.
057             *
058             * Parametrit           actionEvent             ActionEvent-luokan objekti
059             *
060             * Paikalliset muuttujat
061             *----------------------
062             * model                        JSTableModel-luokan objekti, viittaus taulukon TableModeliin.
063             ***********************************************************************************************/
064            
065            
066            public void actionPerformed(java.awt.event.ActionEvent actionEvent)
067            {
068                    JButton oButton = (JButton)(actionEvent.getSource());
069                    JSTable oTarget = (JSTable)m_oTarget;
070                    JSTableModel model = (JSTableModel)oTarget.getModel();
071                    if (oButton.getActionCommand().equals("AddColumn"))
072                    {
073                            model.addEmptyColumn();
074                    }
075                    if (oButton.getActionCommand().equals("AddRow"))
076                    {
077                            model.addEmptyRow();
078                    }
079                    if (oButton.getActionCommand().equals("RemoveColumn"))
080                    {
081                            model.removeColumnAndData(oTarget);
082                    }
083                    if (oButton.getActionCommand().equals("RemoveRow"))
084                    {
085                            model.removeRow(oTarget);
086                    }
087                    if (oButton.getActionCommand().equals("InsertRow"))
088                    {
089                            model.insertRow(oTarget);
090                    }
091                    if (oButton.getActionCommand().equals("Save"))
092                    {
093                            model.save(oTarget);
094                            JOptionPane.showMessageDialog(null, "Data saved", "Saved", JOptionPane.ERROR_MESSAGE);
095                    }
096            }
097    }